home *** CD-ROM | disk | FTP | other *** search
- #include "GWorldUtils.h"
-
-
- OSErr NewLockedGWorld(GWorldPtr* gWorld,short pixDepth,Rect* bounds,CTabHandle ctTable,GDHandle device,long flags)
- {
- OSErr err = noErr;
-
- err = NewGWorld(gWorld,pixDepth,bounds,ctTable,device,flags);
- if(err == noErr){
- PixMapHandle pm = GetGWorldPixMap(*gWorld);
-
- if(!LockPixels(pm)){
- err = paramErr;
- }
- }
-
- return err;
-
- }
-
- OSErr NewCIconGWorld(short inID,GWorldPtr* outGWorld,RgnHandle* outMask)
- {
- OSErr err = noErr;
- CIconHandle cIcon = GetCIcon(inID);
- GWorldPtr saveGWorld;
- GDHandle saveGD;
-
- GetGWorld(&saveGWorld,&saveGD);
-
- if(cIcon == NULL){
- err = paramErr;
- }else{
- Rect bounds = cIcon[0]->iconPMap.bounds;
-
- err = NewLockedGWorld(outGWorld,0,&bounds,NULL,NULL,0);
- if(err == noErr){
- SetGWorld(*outGWorld,NULL);
- PlotCIcon(&bounds,cIcon);
- *outMask = NewRgn();
- HLock((Handle)cIcon);
-
- BitMapToRegion(*outMask,&(cIcon[0]->iconMask));
- }
-
- DisposeCIcon(cIcon);
- }
-
- SetGWorld(saveGWorld,saveGD);
-
- return err;
- }
-